Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.03.2017, 20:18
Аспирант
Отправить личное сообщение для slavAAvals Посмотреть профиль Найти все сообщения от slavAAvals
 
Регистрация: 08.12.2016
Сообщений: 49

Подгрузка контента.
Есть некий mypoems.php - это разметка, где будет вставляться:

<div class="poems-list" >
 
        <?php include 'loader-poems.php';  ?>
 
</div>


отдельный файл loader-poems.php , где содержится:

<?php include('includes-db.php'); ?>
 
 
<?php
 
if (!isset($_SESSION['loader'])) {
    $_SESSION['loader'] = 0;
}
 
$result = mysqli_query($connection, 'SELECT * FROM `stihi` LIMIT '.$_SESSION['loader'].', 1' );
 
$_SESSION['loader'] += 1;
 
while( ($row = mysqli_fetch_assoc($result)) ) {
 
    echo '<div class="poems-list__item">';
    echo '<h2 class="poems-title">' . $row['title'] . '</h2>';
    echo '<p class="poems-content">' . $row['text'] . '</p>';
    echo '<span class="poems-date">' . $row['date'] . '</span>';
    echo '</div>';
 
}
?>


аякс

$(document).ready(function(){
   $(".loader").hide();  //Скрываем прелоадер
});
 //чтобы знать с какой записи вытаскивать данные
    $(function() {
       $(".loader-btn").click(function(){ //Выполняем если по кнопке кликнули
       $(".loader").show(); //Показываем прелоадер
 
       $.ajax({
              url : '../loader-poems.php',
 
              success: function(response){
               if(response == 0) {  // смотрим ответ от сервера и выполняем соответствующее действие
                  alert("Конец");
                  $(".loader").hide();
               } else {
                  $(".poems-list").append(response);
                  $(".loader").hide();
                  alert('Загрузилось');
               }
 
            }
         });
 
    });
});



Где я потерялся?)
Ответить с цитированием
  #2 (permalink)  
Старый 28.03.2017, 07:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

if(response == 0) - это никогда не произойдет.
Ответить с цитированием
  #3 (permalink)  
Старый 28.03.2017, 08:07
Аспирант
Отправить личное сообщение для slavAAvals Посмотреть профиль Найти все сообщения от slavAAvals
 
Регистрация: 08.12.2016
Сообщений: 49

Почему?
Ответить с цитированием
  #4 (permalink)  
Старый 28.03.2017, 08:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,279

Сообщение от slavAAvals
Почему?
Очевидно потому, что response не станет нулем...

Ты ведь это пришлешь на запрос
Сообщение от slavAAvals
отдельный файл loader-poems.php , где содержится:
А там нет нуля...

Если не веришь - посмотри сам, что приходит в response.
Ответить с цитированием
  #5 (permalink)  
Старый 28.03.2017, 08:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Потому, что сценарием этого не определено.
Ответить с цитированием
  #6 (permalink)  
Старый 28.03.2017, 08:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

slavAAvals,
и помните, что сервер не передает чисел, все строки, так что практика ответ == числу может сильно подвести когда либо.

if(!!response) {
    //получен ответ
} else {
    //пусто
}
Ответить с цитированием
  #7 (permalink)  
Старый 28.03.2017, 08:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,279

В случае с success ответ именно получен. Вот содержание этого ответа может быть разным...
Ответить с цитированием
  #8 (permalink)  
Старый 28.03.2017, 08:56
Аспирант
Отправить личное сообщение для slavAAvals Посмотреть профиль Найти все сообщения от slavAAvals
 
Регистрация: 08.12.2016
Сообщений: 49

Ответ то пустой, то какие-то символы... Иногда правильный
Ответить с цитированием
  #9 (permalink)  
Старый 28.03.2017, 09:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от slavAAvals
Ответ то пустой, то какие-то символы... Иногда правильный
Алгоритм вашего серверного сценария не соответствует поставленной задаче. Нет проверки вернул ли запрос в базу что-то или нет, без разбора, увеличивается счетчик, выполнение цикла, и соответственно не понять что получит клиент. Этакая пустая бесконечность с бесполезными запросами в базу.

Переписывайте серверный код.
Ответить с цитированием
  #10 (permalink)  
Старый 28.03.2017, 09:13
Аспирант
Отправить личное сообщение для slavAAvals Посмотреть профиль Найти все сообщения от slavAAvals
 
Регистрация: 08.12.2016
Сообщений: 49

По сути я хочу по нажатию на кнопку подгружать n-ое кол-во записей.


loader-poems.php
<?php include 'includes-db.php'; ?> //подключаю базу данных

<?php

// если сессия не создана ставлю 0 и подгружается первый блок


if (!isset($_SESSION['loader'])) {
	$_SESSION['loader'] = 0;
}

// ставлю кол-во, тут один для теста

$result = mysqli_query($connection, 'SELECT * FROM `stihi` LIMIT '.$_SESSION['loader'].', 1' );



while( ($row = mysqli_fetch_assoc($result)) ) {

	echo '<div class="poems-list__item">';
	echo '<h2 class="poems-title">' . $row['title'] . '</h2>';
	echo '<p class="poems-content">' . $row['text'] . '</p>';
	echo '<span class="poems-date">' . $row['date'] . '</span>';
	echo '</div>';

}
?>

// он и появляется


на ajax идёт этот файл

loader.php

<?php

session_start();

include 'loader-poems.php';


?>



ajax.js
$(document).ready(function(){
   $(".loader").hide();  
});

    $(function() {
       $(".loader-btn").click(function(){ 
       $(".loader").show(); 

       $.ajax({
              url : '../loader.php',

              success: function(response){
				  console.log(response)
               if(!response) { 
                  alert("Нетушки");
                  $(".loader").hide();
               } else {
                  $(".poems-list").append(response);
                  $(".loader").hide();
				  alert('Загрузилось');
               }

            }
         });

    });
});



Тут должно выводиться

...
<div class="poems-list" >

		<?php include ('loader-poems.php');  ?>

    </div>
...



В какоим именно файле нужно менять что-то?... Я просто запутался, и без чьей-то помощи уже вряд ли распутаюсь.
А когда заработает уже будет понятно, что за сеть, в которую я попал.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подгруздка внешнего контента в блок и снова подгрузка arahmanov Элементы интерфейса 2 19.01.2014 14:31
Динамическая подгрузка контента при прокрутке assd18 AJAX и COMET 11 14.03.2013 14:05
Подгрузка контента в div Platypus Общие вопросы Javascript 10 09.03.2013 12:27
Подгрузка контента, без перезагрузки панели cyber_bober Элементы интерфейса 2 14.12.2012 13:37
Подгрузка контента Контакта beerdy AJAX и COMET 5 25.10.2011 10:24